1. Field of the Invention
The present invention relates to a wireless communications system. More specifically, the present invention discloses a method and system that can properly determine sequence number ordering when performing an SDU discard procedure with a move receiving window (MRW) operation.
2. Description of the Prior Art
The surge in public demand for wireless communication devices has placed pressure upon industry to develop increasingly sophisticated communications standards. An example of such a standard is the 3rd Generation Partnership Project (3GPP(trademark)), Technical Specification Group Radio Access Network, RLC Protocol Specification. Such standards utilize a three layer approach to communications. Please refer to FIG. 1. FIG. 1 is a block diagram of the three layers in a communications protocol. In a typical wireless environment, a base station 10 is in wireless communications with one or more mobile units 20. An application 13 on the base station 10 composes a message 11 and has it delivered to the mobile unit 20 by handing the message 11 to a layer 3 interface 12. The layer 3 interface 12 delivers the message 11 to a layer 2 interface 16 in the form of layer 2 service data units (SDUs) 14. The layer 2 SDUs 14 may be of any length. The layer 2 interface 16 composes the layer 2 SDUs 14 into one or more layer 2 protocol data units (PDUs) 18. Each layer 2 PDU 18 is of a fixed length, and is delivered to a layer 1 interface 19. The layer 1 interface 19 is the physical layer, transmitting data to the mobile unit 20. The transmitted data is received by the mobile unit 20 by the layer 1 interface 29 and reconstructed into one or more layer 2 PDUs 28, which are passed up to the layer 2 interface 26. The layer 2 interface 26 receives the layer 2 PDUs 28 and builds up a layer 2 SDU 24. The layer 2 SDU 24 is passed up to the layer 3 interface 22. The layer 3 interface 22 in turn converts the layer 2 SDUs 24 (which may also be termed layer 3 PDUs) back into a message 21, which should be identical to the original message 11 that was generated by the base station 10 application 13. The message 21 is then passed to an application 23 on the mobile unit 20.
Of particular interest is the layer 2 interface, which acts as a buffer between the relatively high-end data transmission and reception requests of the applications, and the low-level requirements of the physical transmission and reception process. Please refer to FIG. 2. FIG. 2 is a diagram of a transmission/reception process from a layer 2 perspective. The layer 2 interface 32 of a transmitter 30, which may be either a base station or a mobile unit, receives a string of layer 2 SDUs 34 from layer 3. The layer 2 SDUs 34 are sequentially ordered from 1 to 5, and are of an unequal length. The layer 2 interface 32 converts the string of layer 2 SDUs 34 into a string of layer 2 PDUs 36. The layer 2 PDUs are sequentially ordered from 1 to 4, and are all of an equal length. The string of layer 2 PDUs is then sent off to the layer 1 interface for transmission. A reverse process occurs at the receiver end 40, with the receiver layer 2 interface 42 converting a received string of layer 2 PDUs 46 into a received string of layer 2 SDUs 44. Under certain transport modes, however, the multi-layered protocol insists that the receiver layer 2 interface 42 present the layer 2 SDUs to layer 3 in order. That is, the layer 2 interface 42 must present the SDUs 44 to layer 3 in the sequential order of the SDUs 44, beginning with SDU 1 and ending with SDU 5. The ordering of the SDUs 44 may not be scrambled, nor may a subsequent SDU be delivered to layer 3 until all of the prior SDUs have been delivered.
In line transmissions, such a requirement is relatively easy to fulfill. In the noisy environment of wireless transmissions, however, the receiver 40, be it a base station or a mobile unit, often misses data. Some layer 2 PDUs in the received string of PDUs 46 will therefore be missing. Thus, ensuring that the layer 2 SDUs 44 are presented in order can pose a significant challenge. Please refer to FIG. 3. FIG. 3 is a block diagram of a data PDU 50, as defined in the 3GPP(trademark) TS 25.322 specification. In general, there are two types of PDUs: a control PDU or a data PDU. Control PDUs are used by layer 2 to control data transmission and reception protocols. Data PDUs are used to transmit acknowledged mode data, which is then reassembled and presented to layer 3. The example PDU 50 is a data PDU, and is divided into several fields, as defined by the layer 2 protocol. The first field 51 is a single bit indicating that the PDU 50 is either a data or a control PDU. As the data/control bit 51 is set (i.e., equal to 1), the PDU 50 is marked as an acknowledged mode data PDU. The second field 52 is a sequence number (SN) field, and is twelve bits long. Successive PDUs have successively higher sequence numbers, and in this way a receiver can properly reassembled layer 2 PDUs to form layer 2 SDUs. That is, if a first PDU is transmitted with an SN equal to 536, the next PDU would be transmitted with an SN equal to 537, and so forth. A single polling bit 53 follows the SN field 52, and when set indicates that the receiver should respond with an acknowledgment status PDU, which is one kind of control PDU, and which will be introduced later. Bit 54 is reserved and is set to zero. The next bit 55a is an extension bit, and when set indicates the presence of a following length indicator (LI). An LI may be either 7 bits long or 15 bits long, and is used to indicate the ending position of a layer 2 SDU within the layer 2 PDU. If a single SDU completely fills the data region 58 of the PDU 50, then the bit 55a would be zero, thereby indicating that no LI is present. In the example PDU 50, however, there are two layer 2 SDUs ending in the layer 2 PDU 50: SDU157a and SDU257b. There must, therefore, be two LIs to indicate the respective ends of the SDU157a and the SDU257b. A PDU following the PDU 50 would hold the LI for SDU357c. The first LI, LI1, is in field 56a following the extension bit field 55a, and marks the end of the SDU157a. LI156a has an extension bit 55b that is set, indicating the presence of another LI, LI2 in field 56b. LI256b indicates the ending position of the SDU257b, and has an extension bit 55c that is cleared, signifying that there are no more LIs, and that the data region 58 is thus beginning.
The fact that the SN field 52 has a fixed bit length presents the peculiar fact that it is possible for layer 2 PDUs having higher SN values to be sequentially before layer 2 PDUs having lower SN values. To better understand this, please refer to FIG. 4. FIG. 4 is a phase diagram 60 of a sequence number transmission cycle. SN values behave very much like time values on a clock, due to overflow of the 12 bits in the SN field 52. For example, an initial PDU may have an SN value of 0 (shown at position 66), followed by a PDU with an SN=1 (at position 61), and another with an SN=2, etc. The PDU SN values continue incrementing with each PDU, passing the 1024 mark at position 62, the 2048 mark at position 63, the 3072 mark at position 64 and finally reaching a maximum value of 4095 at position 65. At 4095, the SN overflows when incremented, and returns to zero, just as 23:00 hours overflows to 0:00 hours at midnight. Thus, a layer 2 PDU with an SN=2 might be sequentially before a layer 2 PDU with an SN=1000, and yet sequentially after a layer 2 PDU with an SN=4092. If great care is not taken, this inequality of PDU sequentiality with SN numerical ascendancy can lead to confusion.
In the following discussion, receivers and transmitters may be either base stations or a mobile units. The term PDU is used to indicate a layer 2 PDU, and the term SDU is used to indicated a layer 2 SDU. A receiver has a receiving window that is delimited by two state variables: VR(R) and VR(MR). VR(R) marks the beginning of the receiving window, and VR(MR) marks the end of the receiving window. The receiver expects to receive only PDUs that have SN values that land within the receiving window. Other PDUs are discarded. To better understand this, please refer to FIG. 5. FIG. 5 is a phase diagram 70 for a receiving window 73. In FIG. 5, the receiving window 73 has a VR(R)=3852 at position 71, and a VR(MR)=206 at position 72. At position 74, the SN values roll over to zero. The receiving window 73 thus has a width of 450 PDUs. VR(MR) is always kept a fixed PDU SN value distance away from VR(R). That is, VR(MR)=VR(R)+the receiving window width (i.e., 450). As PDUs are received, the receiver advances VR(R), and thus advances the receiving window 73. VR(R) may not advance past any PDU that has not yet been properly received.
Please refer to FIG. 6. FIG. 6 is a phase diagram 80 for a transmitting window 83. In a manner analogous to the receiver, a transmitter has a transmitting window 83 that is delimited by two state variables: VT(A) and VT(MS). VT(A) marks the beginning of the transmitting window 83, and VT(MS) marks the end of the transmitting window 83. For FIG. 6, VT(A)=3752 at position 81, and VT(MS)=106 at position 82. Again, roll over to zero occurs at position 84. The transmitting window 83 is thus also 450 PDUs wide. The transmitter may only transmit PDUs that have SN values falling within the range of the transmitting window 83. The transmitter advances VT(A), and thus advances the transmitting window 83, upon reception of an acknowledgment status PDU from the receiver. The acknowledgment status PDU contains the most recent value of VR(R) from the receiver, and is sent periodically or upon receipt of a PDU with the polling bit 53 set. When an acknowledgment status PDU is received, the transmitter sets the state variable VT(A) equal to the VR(R) value contained in the acknowledgment status PDU. In this manner, the transmitting window 83 should ideally move forward in lock step with the receiving window 73.
As the receiving window 73 and the transmitting window 83 advance with each other, PDUs stream from the transmitter and are assembled into corresponding SDUs by the receiver. These SDUs are then passed in order to layer 3. As noted previously, under certain transmission modes the communications protocol requires that SDUs be delivered to layer 3 fully and in sequence. However, the protocol does allow SDUs to be discarded. This may occur, for example, due to a timeout, in which the data in the SDU is no longer relevant. A layer 2 transmitter can send control PDUs to a receiver indicating which SDUs are to be discarded. Upon reception of this control PDU, the receiver adjusts its receiving window 73 accordingly, and informs its layer 3 of the SDUs that have been discarded. This control PDU for discarding SDUs is termed a Move Receiving Window (MRW) request PDU. Please refer to FIG. 7. FIG. 7 shows an MRW super-field 90 in an MRW request PDU 91. The MRW super-field 90 comprises a type field 92 of four bits that identifies the PDU 91 as an MRW request PDU, a length field 93 of four bits for indicating the number of subsequent SN_MRW entries 94, and an NLength field 95 of four bits. Each SN_MRW entry 94 is used to indicate the end of a discarded SDU, and contains the SN value for the PDU that holds the end of the discarded SDU. The last entry 94, SN_MRWLength, together with the NLength entry 95 inform the receiver how the state variable VR(R) should be set. The NLength entry 95 indicates how many LIs and corresponding data in the SN_MRWLength PDU should be discarded. The length field 93 may hold a special case value of zero, which indicates that the MRW request PDU 91 holds a single SN_MRW entry 94 that extends beyond a transmitting window of the transmitter.
To better understand the above, please refer to FIG. 8 and FIG. 9. FIG. 8 is a diagram of a string of SDUs 100. FIG. 9 illustrates a sample MRW super-field 110 for discarding a portion of the SDUs 100 shown in FIG. 8. In FIG. 8, individual PDUs that carry the SDUs 100 are marked with dotted lines. SDU_11 ends in a PDU 101 having an SN value of 90. SDU_12 ends in a PDU 102 having an SN value of 95. SDU_13 and SDU_14 both end in a PDU 103 having an SN value of 96. Finally, SDU_15 begins in a PDU 104 with an SN value of 97. To discard SDU_11, SDU_12 and SDU_13, a transmitter builds the MRW super-field 110 and sends the MRW super-field 110 to the receiver as an MRW request PDU 111. The type field 112 is set to an MRW type indicator. The length field 113 holds a value of three, indicating that three SN_MRW entries follow. SN_MRW1 entry 114 is set to 90, indicating the end position of SDU_11 that is to be discarded, corresponding to PDU 101. The second entry SN_MRW2 is set to 95, indicating that SDU_12, which is to be discarded, ends in PDU 102. Finally, the last entry SN_MRW3 116 together with N3 117 equal to 1 indicates that the first LI in PDU 103, and the data the LI references, are to be discarded. This corresponds, then, to throwing out SDU_13. SDU_14, on the other hand, is kept.
Please refer to FIG. 10 with reference to FIG. 8. FIG. 10 illustrates another MRW super-field 120. A special case exists when a transmitter wishes to discard a single SDU that extends outside the transmitter window. For example, arrow 106 in FIG. 8 represents the end of the transmitting window, which is at an SN value of 98. That is, VT(MS)=98. SDU_15, however, ends in a PDU 105 that has an SN value of 99, which is beyond VT(MS). To discard SDU_15, the transmitter creates the MRW super-field 120 with a length field 123 having a value of zero. A zero value in the length field 123 indicates to the receiver that a single SDU is being discarded that extends beyond the range of the transmitting window. SDU_15 ends in PDU 105 having an SN value of 99, so the SN_MRW1 field 124 is set to 99. The last field 125, the so-called NLength field, is set to one, indicating that the first LI in PDU 105, and the data so referenced, is to be discarded.
Please refer to FIG. 11. FIG. 11 is an SN phase diagram 130 for SDUs ending at 132a and 132b to be discarded. Both a transmitter and a receiver (not shown) share an identical window 134 that is 600 PDUs wide, having a starting point 134a with an SN value of 3696, and an ending point 134b with an SN value of 200. That is, for the receiver, VR(R)=3696 at point 134a, and VR(MR)=200 at point 134b, forming the receiving window 134. Similarly, for the transmitter, VT(A)=3696, and VT(MS)=200, forming the transmission window 134. Point 131 indicates an SN value of zero. The transmitter wishes to discard two SDUs: the SDU ending at position 132a having an SN value of 3796, and the SDU ending at position 132b, sequentially after the position 132a, having an ending SN value of 450. Please refer to FIG. 12 with reference to FIG. 11. FIG. 12 illustrates an MRW request PDU 141 holding an MRW super-field 140 to effect the SDU discards of FIG. 11. Type field 142 indicates that the PDU 141 is an MRW request PDU. Length field 143 has a value of three, indicating that three SN_MRW entries follow. SN_MRW1 144 marks the ending PDU at point 132a of the first discarded SDU. SN_MRW2 145 marks the ending PDU at point 132b of the second discarded SDU. The SDU ending at position 132b totally fills its final PDU, and hence the final SN_MRW entry 146 in the MRW super-field 140 holds a value of 451, and the N field 147 holds a value of zero. The final fields 146 and 147 indicate to the receiver that all data is to be kept in the PDU having an SN value of 451, whereas all the data is to be discarded in the PDU having an SN value of 450.
When processing the MRW super-field 140 in the MRW request PDU 141, the receiver must determine the sequence order of the SDU 132b, as given by SN_MRW2 field 145. As the sequencing is circular, the SDU 132b may be after the end of the receiving window 134, i.e., be sequentially after VR(MR) at 134b. This is, in fact, the intention of the transmitter. However, it is also possible that the SDU 132b was meant to indicate an SDU that was sequentially before the start of the receiving window 134, i.e., sequentially before VR(R) at 134a. To properly resolve this ambiguity, the protocol states that if any SDUs land within the receiving window 134, then other SDUs outside of the receiving window 134 are to be considered after VR(MR), i.e., after the end of the receiving window 134 at the point 134b. On the other hand, if none of the SDUs land within the receiving window 134, then all of the SDUs are to be considered before VR(R), i.e., before the start of the receiving window 134 at point 134a. As the SDU 132a lies within the receiving window 134, using this protocol, the receiver properly recognizes that the SDU ending at 132b is sequentially after VR(MR) at 134b. 
Please refer to FIG. 13. FIG. 13 is an alternative SN phase diagram 150 for the SDUs indicated in FIG. 11 and FIG. 12. Item numbers in FIG. 11 and FIG. 13 are kept identical for those items that are identical in nature. In FIG. 11, both the receiving window and the transmitting window lay upon the same window 134. This is not the general case, however. In general, the receiving window will advance beyond the transmitting window since the receiver reports an acknowledgement status on a periodic base or after it receives a poll from the transmitter, which does not trigger a poll with every PDU. Additionally, the transmitter may occasionally fail to receive an acknowledgment status PDU from the receiver, and thus will not update its transmitting window to reflect the new state of the receiving window. In FIG. 13, arrow 136 indicates the extents of a transmitting window, with VT(A) at point 136a having an SN value of 3696, and VT(MS) at point 136b with an SN value of 200. This is identical, then, to the window 134 of FIG. 11. Arrow 138 represents the extents of the receiving window, which has advanced 200 PDU units past the transmitting window 136. The receiving window 138 has a VR(R) value of 3896 at point 138a, and a VR(MR) value of 400 at point 138b. In this case, when the receiver receives the MRW request PDU 141 of FIG. 12, the indicated SDUs ending at 132a and 132b respectively will be treated differently. As neither 132a nor 132b lie within the receiving window 138, the receiver will treat both respective SDUs as being prior to VR(R) at point 138a, and hence ignore the SDU discard request for the SDU ending at 132b. That is, the receiver will believe that the SDUs ending at 132a and 132b have already been received, and hence will not discard the SDU ending at 132b as requested by the transmitter. The sequential ordering of the SDU ending at 132b is misconstrued by the receiver protocol rules.
It is therefore a primary objective of this invention to provide a method for determining the sequential ordering of layer 2 protocol data units (PDUs) in a move receiving window (MRW) request sent to a receiver in a wireless communications system to discard at least one layer 2 service data unit (SDU)
Briefly summarized, the preferred embodiment of the present invention discloses building a layer 2 MRW super-field that has a PDU sequence number for each layer 2 SDU to be discarded. Within the MRW super-field there is an initial sequence number that is arranged within the MRW super-field according to a packing algorithm. The MRW super-field is transmitted to the receiver, and the receiver extracts the initial sequence number. The receiver then assumes that all other PDU sequence numbers within the MRW super-field are sequentially after the initial sequence number to effect the discarding of layer 2 SDUs.
It is an advantage of the present invention that by establishing a reference sequence number, the receiver is able to properly determine the correct ordering of layer 2 PDUs when discarding layer 2 SDUs, and thus the receiver will not mistakenly discard or accept incorrect layer 2 SDUs.
These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment, which is illustrated in the various figures and drawings.